package org.flexthinker.binding.value
{
    /**
     * Defines the operations for determining if two values (an old and a new value) are
     * different enough to indicate a change in the value model.
     */
    public interface ValueChangeDetector
    {
        /**
         * Determine if there has been a change between two values (an old and a new value).
         * The definition of <em>different enough</em>, is dependent upon the needs of a
         * ValueModel implementation.
         *
         * @param oldValue Original object value
         * @param newValue New object value
         * @return true if the objects are different enough to indicate a change in the value
         *         model
         */
        function hasValueChanged(oldValue:Object, newValue:Object):Boolean;
    }
}